<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      //1. 模板字符串  ： ``声明字符串  ${}插值表达式 ：可以接收简单的运算；
      // let flag = true;
      // document.onclick = function(){
      //     flag = !flag;
      //     let str = `<h1>
      //         我的名字是${flag?'张三':'李四'}
      //         </h1>`;
      //     document.body.innerHTML = str;
      // }

      // 2.展开运算符 ： ...
      // 1.数组的展开；
      // var arr = [1,3,4,6,2];
      // var res =  Math.max(...arr);
      // console.log(res);
      // 2.合并数组
      // var arr1 = [1,2,3];
      // var arr2 = [2,3,4];
      // // var res =  arr1.concat(arr2);
      // // console.log(res);
      // var res = [...arr1,...arr2];
      // console.log(res);

      // 3.把伪数组转成数组；
      // function fn(){
      //     var arg = arguments;
      //     console.log(arg);
      //     let arr = [...arg];
      //     console.log(arr);
      // }
      // fn(1,2,3);

      // 4.参数的展开 ；rest参数 ，处理不定参数；
      function fn() {
        // 通过 rest来接收不定参数；
        // console.log(args);
        var args = arguments;
        // 执行回调函数
        args[args.length - 1] && args[args.length - 1]();
      }

      // ES6

      // function fn(...args){  // 通过 rest来接收不定参数；
      //     // console.log(args);
      //     // 执行回调函数
      //     args[args.length-1] && args[args.length-1]();
      // }

      fn(1, 2, function () {
        console.log("回调1");
      });

      fn(1, function () {
        console.log("回调2");
      });
    </script>
  </body>
</html>
